package com.nifostasky.comic.entitys;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@ApiModel(value="单位")
@Data
@TableName(value = "sys_unit")
public class SysUnit extends  SysBaseEntity implements Serializable {

    /**
     * 父节点(根节点为0)
     */
    @TableField(value = "parent_id")
    @ApiModelProperty(value="父节点(根节点为0)")
    private Long parentId;

    /**
     * 所属区域id
     */
    @TableField(value = "org_id")
    @ApiModelProperty(value="所属区域id")
    private Long orgId;

    /**
     * 所属区域code
     */
    @TableField(value = "org_code")
    @ApiModelProperty(value="所属区域code")
    private String orgCode;

    /**
     * 预留字段
     */
    @TableField(value = "unit_type")
    @ApiModelProperty(value="预留字段:数据字典")
    private String unitType;

    @TableField(value = "unit_dept_type")
    @ApiModelProperty("单位部门:1单位、2部门")
    private String unitDeptType;

    /**
     * 单位名称
     */
    @TableField(value = "unit_name")
    @ApiModelProperty(value="单位名称")
    private String unitName;

    /**
     * 单位code
     */
    @TableField(value = "unit_code")
    @ApiModelProperty(value="单位code")
    private String unitCode;

    /**
     * 所属区域层级
     */
    @TableField(value = "org_level")
    @ApiModelProperty(value="所属区域层级")
    private Integer orgLevel;

    /**
     * 单位地址
     */
    @TableField(value = "address")
    @ApiModelProperty(value="单位地址")
    private String address;

    /**
     * 状态(0：正常、1：注销、2：其他)
     */
    @TableField(value = "unit_status")
    @ApiModelProperty(value="状态(0：正常、1：注销、2：其他)")
    private Integer unitStatus;

    /**
     * 排序
     */
    @TableField(value = "sort")
    @ApiModelProperty(value="排序")
    private Integer sort;

    /**
     * 联系人
     */
    @TableField(value = "person_name")
    @ApiModelProperty(value="联系人")
    private String personName;

    /**
     * 联系电话
     */
    @TableField(value = "person_phone")
    @ApiModelProperty(value="联系电话")
    private String personPhone;

    /**
     * 单位别名(默认为部门名称)
     */
    @TableField(value = "alias_name")
    @ApiModelProperty(value="单位别名(默认为部门名称)")
    private String aliasName;

    @ApiModelProperty("上级单位名称")
    @TableField(exist = false)
    private String parentName;

    @ApiModelProperty("所属区域名称")
    @TableField(exist = false)
    private String orgName;

    @ApiModelProperty("单位与所属区域关联信息，多对多")
    @TableField(exist = false)
    private List<SysOrgUnitRel> listSysOrgUnit;

    @ApiModelProperty("是否查询当前单位本层级及下级")
    @TableField(exist = false)
    private Boolean hasChildQuery;
}